package com.chucang.shucang.common.base.utils;

import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.SmUtil;
import lombok.experimental.UtilityClass;

/**
 * @author flitsneak
 * @email flitsneak@gmail.com
 * @date 2022/10/12 11:02
 * @description 国密4对称加密
 */
@UtilityClass
public class Sm4Util {
    /**
     * sm4对称加密
     *
     * @param key
     * @param value
     * @return
     */
    public String encode(String key, String value) {
        return Base64.encode(SmUtil.sm4(key.getBytes()).encrypt(value));
    }

    /**
     * sm4对称解密
     *
     * @param key
     * @param base64
     * @return
     */
    public String decode(String key, String base64) {
        return new String(SmUtil.sm4(key.getBytes()).decrypt(Base64.decode(base64)));
    }
}
